package lk;

public class D230918 {
    // 移动零
    // 将数组中的 0, 移到末尾
    // 同向双指针
    public void moveZeroes(int[] nums) {
        int dest = -1;
        int cur = 0;
        for (;cur < nums.length; cur++) {
            if (nums[cur] != 0) {
                dest++;
                if (dest == cur) {
                    // 数组一开始没有 0 的情况
                    continue;
                }
                nums[dest] = nums[cur];
                nums[cur] = 0;
            }
        }
    }


    // 判断子序列
    // 1. 双指针
    public boolean isSubsequence(String s, String t) {
        int n = s.length(), m = t.length();
        int i = 0, j = 0;
        while (i < n && j < m) {
            if (s.charAt(i) == t.charAt(j)) {
                i++;
            }
            j++;
        }
        return i == n;
    }

    // 2. 动态规划, 类似最长子序列
}
